package com.tgy;

/**
 * 1. 接口
 *  1.1 接口中定义的方法都是public修饰， 而且不能有实现，在JDK8之后可以有默认实现
 *  1.2 接口中定义的属性都是 public static final 类型，即 公开静态常量
 *  1.3 在 开发中经常使用 接口来解耦合，下层对上层面向接口编程，只需要知道完成功能调用的方法，至于具体实现，则有上层控制
 *
 * 2. 抽象类
 *
 *  2.1.抽象类可以有普通方法，不一定要有抽象方法。
 *
 *  2.2 抽象类中的抽象方法由子类实现，根据java多态，在父类中调用该抽象方法。其实是调用子类的实现。
 *
 *  2.3 在实际使用中，一般抽象类的功能是抽取子类的公共功能，然后实现对应的接口，做到承上启下的作用，上对接口，下对继承于本类的功能子类
 *
 */

abstract class Abs{

//  子类实现，父类调用
  public abstract void run();

  public void refresh(){

//    调用子类的run方法
    this.run();
  }


}

public class _06_接口与抽象类 {

  public static void main(String[] args) {

  }
}
